Skip to main content
Version: 2.0

Change Management

Change is a constant, especially in software development. New technologies, shifting market demands, and evolving business priorities mean engineering teams are always adapting. As engineering leaders, we aren’t just reacting to change; we’re responsible for guiding our teams through it. And how we handle that navigation can make or break a project, a team, and even careers.

Too often, “change management” feels like a buzzword, a box-ticking exercise, or worse – a way to offload risk onto the development team. I’ve seen methodologies implemented that, in practice, increase developer stress by making them responsible for mitigating risks that should be owned further up the chain. This isn’t change management; it’s risk transfer disguised as agility.

This article isn't about frameworks or processes (though I’ll touch on those). It’s about the core principles that enable successful change within engineering teams, rooted in genuine care and a deep understanding of where real control needs to lie.

The Problem With Top-Down Change

Let’s be honest: top-down mandates rarely work well. Announcing a new tech stack, process, or organizational structure at your team, rather than with them, breeds resentment and resistance. Why? Because it feels like control is being taken away, not collaboratively redefined.

I once led a team where a new project management platform was unilaterally chosen by leadership. While it looked good on paper, it didn’t align with our team’s workflow. The result? A frustrating onboarding process, decreased productivity, and a lot of wasted time. The intent was good – “better project management” – but the execution was deeply flawed.

The core issue wasn’t the platform itself, but the way it was introduced. There was no opportunity for feedback, no exploration of alternatives, and no acknowledgement of the team’s existing processes.

Shifting the Paradigm: Collaborative Change

So how do we do better? Here's a framework, built around a few key principles:

1. Early Involvement & Feasibility Studies: Don’t present a solution; present a problem and involve your team in exploring solutions. Before committing to a change, dedicate timeboxed explorations. Instead of "We're switching to React," try "We're seeing performance issues with the current frontend. Let's spend a week exploring potential solutions, including evaluating React, Vue, and Angular, and identify the trade-offs." These explorations aren't just technical; they should include estimates of effort, impact on existing systems, and potential risks.

2. Define Business Requirements, Not Implementation Details: Specs should outline what needs achieving, not how. Avoid dictating specific technologies or architectural patterns. Give your engineers the autonomy to choose the best tools and approaches to solve the problem. I've found that clear business requirements unlock creativity and lead to more innovative solutions.

3. Genuine Care & Psychological Safety: This is the foundation of everything. Creating a safe space where engineers feel comfortable voicing concerns, challenging assumptions, and suggesting alternative solutions is critical. If someone feels they'll be penalized for speaking up, the entire process is compromised. Remember, a single person consistently blocked due to bad management is a glaring signal of a systemic problem. It’s also important to acknowledge that change itself can be stressful for engineers. Recognizing the emotional toll and offering support can build trust and foster a more positive environment.

4. Retroactive Analysis & Iteration: Change isn't a one-time event. Regularly reflect on what worked, what didn't, and how to improve the process. This isn't just at the project level, but at the team and organizational levels.

  • Team-Level Retrospectives: Focus on immediate changes the team can make to improve their workflow.
  • Organization-Level Retrospectives: Look at broader trends and identify systemic issues that are hindering change.

The Importance of Level of Control & Integrating Retrospectives

When facilitating corrective actions derived from retrospectives, it’s crucial to implement them at the appropriate level of organizational control. A team can fix a bug in their code, but addressing a persistent bottleneck in cross-team dependencies requires higher-level intervention. Don’t expect a team to solve problems that are outside their direct control.

Consider this when structuring your retrospectives. Before diving into solutions, explicitly discuss who is responsible for implementing each action item. Is it a team-level task, a cross-team effort, or something that requires leadership involvement? This ensures accountability and prevents teams from spinning their wheels on issues they can’t resolve themselves.

Avoiding the Trap: Change for Change's Sake

Sometimes, the most effective change is no change at all. Don’t adopt new technologies or processes simply because they're trendy. Carefully evaluate the potential benefits and ensure they align with your team’s goals.

Key Takeaways

  • Prioritize Collaboration: Involve your team early and often in the change process.
  • Focus on Outcomes, Not Implementation: Define what needs to be achieved, not how.
  • Foster Psychological Safety: Create a safe space for open communication and feedback.
  • Implement at the Right Level: Ensure action items are assigned to the appropriate level of control.

In conclusion: Change management isn’t about imposing solutions; it’s about fostering collaboration, empowering teams, and ensuring that change serves a clear purpose. By prioritizing genuine care and understanding the appropriate level of control, we can navigate the rapids of change and build high-performing engineering teams that thrive in a dynamic environment.

Now, I encourage you to reflect on one change you're currently planning and identify one small way you can incorporate more early involvement from your team.